// ============================================================================
//  gDestroyerNode.uc ::
// ============================================================================
class gDestroyerNode extends Object;

var() bool bTruncate;
var() bool bAnchor;

var() gDestroyerNode Next;
var() gDestroyerNode Prev;

var() vector StartLocation;
var() vector Location;
var() vector Dir;

var() float Size;
var() float Age;

var() vector Control;   // Bezier control point
var() vector Delta;     // vector to newer node
var() float Dist;       // Dist to newer node


enum EBeamCollision
{
    BC_None
,   BC_Actor
,   BC_World
};

enum EBeamSplit
{
    BS_None
,   BS_Begin
,   BS_End
,   BS_Split
};

enum EBeamVisibility
{
    BV_Show
,   BV_Hide
};

var() int CollisionTicks;
var() EBeamCollision ForceCollision;
var() array<vector> BeamPoints;
var() array<vector> OldBeamPoints;
var() array<EBeamCollision> BeamCollision;
var() array<EBeamSplit> BeamSplits;
var() array<EBeamVisibility> BeamVisibility;



final simulated function Free()
{
    CollisionTicks = 0;
    ForceCollision = BC_None;
    BeamPoints.Length = 0;
    BeamCollision.Length = 0;
    BeamSplits.Length = 0;
    BeamVisibility.Length = 0;
}

defaultproperties
{
}
